package com.ruoyi.system.domain;

import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 预约主表对象 appointment
 * 
 * @author ruoyi
 * @date 2025-07-05
 */
public class Appointment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Integer id;

    /** 预约编号 */
    @Excel(name = "预约编号")
    private String appointmentNo;

    /** 患者ID */
    @Excel(name = "患者ID")
    private Integer patientId;

    /** 患者姓名 */
    @Excel(name = "患者姓名")
    private String patientName;

    /** 医生ID */
    @Excel(name = "医生ID")
    private Integer doctorId;

    /** 医生姓名 */
    @Excel(name = "医生姓名")
    private String doctorName;

    /** 预约日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date appointDate;

    /** 时间段 */
    @Excel(name = "时间段")
    private String timeSlot;

    /** 状态(0:待确认 1:已预约 2:已取消 3:已完成) */
    @Excel(name = "状态(0:待确认 1:已预约 2:已取消 3:已完成)")
    private String status;

    /** 就诊记录子信息 */
    private List<VisitRecord> visitRecordList;

    public void setId(Integer id) 
    {
        this.id = id;
    }

    public Integer getId() 
    {
        return id;
    }

    public void setAppointmentNo(String appointmentNo) 
    {
        this.appointmentNo = appointmentNo;
    }

    public String getAppointmentNo() 
    {
        return appointmentNo;
    }

    public void setPatientId(Integer patientId) 
    {
        this.patientId = patientId;
    }

    public Integer getPatientId() 
    {
        return patientId;
    }

    public void setPatientName(String patientName) 
    {
        this.patientName = patientName;
    }

    public String getPatientName() 
    {
        return patientName;
    }

    public void setDoctorId(Integer doctorId) 
    {
        this.doctorId = doctorId;
    }

    public Integer getDoctorId() 
    {
        return doctorId;
    }

    public void setDoctorName(String doctorName) 
    {
        this.doctorName = doctorName;
    }

    public String getDoctorName() 
    {
        return doctorName;
    }

    public void setAppointDate(Date appointDate) 
    {
        this.appointDate = appointDate;
    }

    public Date getAppointDate() 
    {
        return appointDate;
    }

    public void setTimeSlot(String timeSlot) 
    {
        this.timeSlot = timeSlot;
    }

    public String getTimeSlot() 
    {
        return timeSlot;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public List<VisitRecord> getVisitRecordList()
    {
        return visitRecordList;
    }

    public void setVisitRecordList(List<VisitRecord> visitRecordList)
    {
        this.visitRecordList = visitRecordList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("appointmentNo", getAppointmentNo())
            .append("patientId", getPatientId())
            .append("patientName", getPatientName())
            .append("doctorId", getDoctorId())
            .append("doctorName", getDoctorName())
            .append("appointDate", getAppointDate())
            .append("timeSlot", getTimeSlot())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("visitRecordList", getVisitRecordList())
            .toString();
    }
}
